import java.util.Scanner;

/**
 *  人和电脑互相猜拳 （石头，剪刀，布）
 *
 * 游戏规则：
 *
 * 玩家可以从多名角色中选取一名角色（刘备  孙权 曹操）
 *
 * 选取角色后轮流猜拳
 *
 * 猜拳后比较结果，可以选择是否继续游戏
 *
 * 如果退出游戏，显示游戏结果统计列表：
 *
 * 包含总局数，玩家的输赢局数，以及胜率
 *
 *
 * 最后根据胜负对玩家的表现作出相应的评价
 *
 * 对象：
 * 	电脑
 * 		属性：拳（石头，剪刀，布）、总局数、玩家赢的局数
 * 		行为：出拳、计算胜率
 * 	玩家
 * 		属性：角色、拳（石头，剪刀，布）
 * 		行为：出拳、选角色
 *
 * 	游戏的主类：
 * 	    行为：开始游戏、比较结果
 *
 *
 */
public class Game {

    /*
        主类，包含了Main方法，
        在该类中，包含了两个对象：电脑对象、玩家对象
     */
    public Computer computer = new Computer();
    public Player player = new Player();

    public void start(){
        System.out.println("欢迎来到***");

        //1.现需要玩家选择角色
        player.chooseRule();

        //2.开始游戏
        play();
    }

    public void play(){

        System.out.println("下面开始游戏，按#退出，按任意键开始");

        Scanner scanner = new Scanner(System.in);
        String input = scanner.next();

        while(true){

            scanner = new Scanner(System.in);

            if(!"#".equals(input)){

                //2.玩家出拳、电脑出拳
                String playerFit = player.showFit();
                String computerFit = computer.showFit();

                //3.比较输赢
                compare(playerFit,computerFit);

                System.out.println("下面开始游戏，按#退出");

                input = scanner.next();
            }else{
                break;
            }
        }

        //游戏就结束了
        computer.calculate(player.winCount);

    }
    /**
     * 比较两者谁赢了
     * @param playerFit
     * @param computerFit
     */
    public void compare(String playerFit,String computerFit){

        //比较
        if(("石头".equals(playerFit) && "剪刀".equals(computerFit) )||
                "剪刀".equals(playerFit) && "布".equals(computerFit)||
                "布".equals(playerFit) && "石头".equals(computerFit)){
            //玩家赢
            player.winCount++;
        }else if("石头".equals(computerFit) && "剪刀".equals(playerFit) ||
                "剪刀".equals(computerFit) && "布".equals( playerFit)||
                "布".equals(computerFit) && "石头".equals( playerFit)){
            //电脑赢
            computer.winCount++;
        }
        System.out.println("电脑出拳为："+computerFit + "。您出拳为："+playerFit);
        computer.playCount++;
    }

    public static void main(String[] args) {

        //开始游戏
        Game game = new Game();
        game.start();
    }
}
